#include "Vecteur.h"

Vecteur::Vecteur(double a, double b, double c) : Point(a,b,c) { 
	t=0.0; 
	normeInverse = 1.0 / getNorme();
}

Vecteur::Vecteur(const Point &p1, const Point &p2) {
	x = p2.getX() - p1.getX();
	y = p2.getY() - p1.getY();
	z = p2.getZ() - p1.getZ();
	t = 0.0;
	normeInverse = 1.0 / getNorme();
}

Vecteur Vecteur::prodVect(const Vecteur &v) {
	double a = getY()*v.getZ() - getZ()*v.getY();
	double b = getZ()*v.getX() - getX()*v.getZ();
	double c = getX()*v.getY() - getY()*v.getX();
	return (Vecteur(a,b,c));
}

Vecteur Vecteur::normaliser() {
	x *= normeInverse;
	y *= normeInverse;
	z *= normeInverse;
	normeInverse = 1.0;
	return *this;
}
void Vecteur::calculerNormale() {
	normeInverse = 1.0 / getNorme();
}
void Vecteur::setExtremites(const Point &p1, const Point &p2) {
	x = p2.getX() - p1.getX();
	y = p2.getY() - p1.getY();
	z = p2.getZ() - p1.getZ();
	t = 0.0;
	normeInverse = 1.0 / getNorme();
}